Arrangement for mapping colors between imaging systems and method therefor

ABSTRACT

A color mapping method is used in transforming colors between color imaging systems. The method includes using forward transformation profiles that characterize the color imaging systems to generate respective sets of device-independent color values for the color imaging systems. Color conversions are calculated by reducing differences between the respective sets of device-independent color values. Based on these color conversions, a color map is constructed that describes a relationship between the color imaging systems.

RELATED APPLICATION

This is a continuation of U.S. patent application Ser. No. 08/882,561,filed Jul. 3,1997, now U.S. Pat. No. 6,088,038, the entire content ofwhich is incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to color imaging. More particularly, thepresent invention relates to mapping colors between color imagingsystems.

BACKGROUND OF THE INVENTION

Color reproduction processes typically involve using color imagingsystems to produce colors on various media. These color imaging systemsmay be used to duplicate a color image from one medium to anothermedium, e.g., from one printed copy to another or from a display screento a printed copy. Color reproduction processes are used in variousapplication environments, for example, color proofing applications.

Some Color reproduction processes use approaches known as colormanagement systems (CMSs) to characterize various color imaging systemsand to transform color data between the color imaging systems.Characterizing color imaging systems typically involves calculatingcolor response functions using color coordinate systems known as colorspaces. One commonly-used color space is Commission Internationale del'Éclairage L*a*b* (CIELAB) space. CMSs attempt to reproduce an originalcolor image on a color imaging system so as to preserve the appearanceof colors between the original and the reproduction within thelimitations of the color imaging system of the reproduction process.

Various CMS approaches have been proposed to achieve accurate colorreproduction. Many of these approaches involve producing color samplesusing an output or display device and measuring the color values of thesamples using an input device. Such approaches correlate the outputcolors with the measured color values. This correlation is performedusing, for example, forward and reverse transforms betweendevice-specific color spaces and a device-independent color space. Thesetransformation techniques are often supplemented by interpolationbetween entries in a multidimensional lookup table. These techniquesexhibit inaccurate color conversion between similar devices, potentiallyresulting in undesirable contamination of colors. Furthermore, accuratecolor conversion of dark colors has often been particularly difficultbecause of inadequate processing of black channel data in manyapplications.

CMSs often perform gamut mapping to correlate the range or gamut ofcolors that can be realized by a device with regions of a color space.Because many devices life incapable of realizing the complete range ofcolors in a color space, gamut mapping typically involves compressing orscaling regions of the color space. The device can then approximatecolors outside its gamut using the compressed regions of the colorspace. For many CMSs, gamut mapping is potentially inconsistent undercertain circumstances, such as when using profiles generated by softwarefrom different vendors. In addition, many CMSs exhibit inconsistencieswhen performing forward and reverse transformations between imagesystems. For example, color shifting often occurs with repeated forwardand reverse transformations.

Many CMS techniques exhibit other limitations in addition to the lack ofaccuracy in converting colors. For example, many CMS techniques arerelatively inflexible with respect to changes in illumination andobserver conditions, gamut mapping, and choice of color space. Certaintechniques lack forward compatibility with future color standards.

SUMMARY OF THE INVENTION

According to one embodiment, the present invention is directed to acolor mapping method for use in transforming colors between colorimaging systems. The color mapping method includes using forwardtransformation profiles characterizing the color imaging systems togenerate respective sets of device-independent color values for thecolor imaging systems. Color conversions are calculated by iterativelyreducing differences between the sets of device-independent colorvalues. This difference reduction is also optionally performed on blackchannel information to obtain a mapping of black channels between thecolor imaging systems. A color map describing a relationship between thecolor imaging systems is constructed by using the predicted colorconversions. This method may be performed by a color mapping arrangementor a computer-executable program stored on a data storage medium.

According to another embodiment of the present invention, color mappingbetween imaging systems is accomplished by a conversion using profilesthat characterize the color imaging systems to generate respective setsof device-independent color values for the source color imaging systemand converting to the device-dependent data values of the destinationcolor imaging system by performing a color conversion using theprofiles. The device-independent color values have the samedimensionality as the corresponding color imaging systems. The colorconversion can be used to improve its own accuracy relative to a qualitythreshold. The color conversion is used to define a color map fortransforming colors between the color imaging systems.

Another embodiment of the present invention is directed to a colormapping arrangement for use in transforming colors between imagingsystems. A computer arrangement uses forward transformation profilesthat characterize the color imaging systems to generate respective setsof device-independent color values for the color imaging systems. Thecomputer arrangement also calculates color conversions by iterativelyreducing differences between the sets of device-independent colorvalues. The computer arrangement uses the color conversions to constructa color map describing a relationship between the color imaging systemsusing the color conversions. A memory stores the color map.

The above summary of the invention is not intended to describe eachdisclosed embodiment of the present invention. This is the purpose ofthe figures and of the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

Other aspects and advantages of the present invention will becomeapparent upon reading the following detailed description and uponreference to the drawings in which:

FIG. 1 is a block diagram illustrating an example color mapping system,according to an embodiment of the present invention;

FIG. 2 is a block diagram illustrating an example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 3 its a block diagram illustrating another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 4 is a block diagram illustrating yet another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 5 is a block diagram illustrating still another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention; and

FIG. 6 is a flow chart illustrating an example color mapping method,according to another embodiment of the present invention.

While the invention is amenable to various modifications and alternativeforms, specifics thereof have been shown by way of example in thedrawings and will be described in detail. It should be understood,however, that the intention is not to limit the invention to theparticular embodiments described. On the contrary, the intention is tocover all modifications, equivalents, and alternatives falling withinthe spirit and scope of the invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE VARIOUS EMBODIMENTS

The present invention is believed to be applicable to a variety ofsystems and arrangements that characterize color imaging systems. Theinvention has been found to be particularly advantageous fortransforming colors between different color imaging systems. Anappreciation of various aspects of the invention is best gained througha discussion of these particular application examples.

According to one aspect of the present invention, a color mappingtechnique may be applied to a variety of color imaging systems togenerate a color map that can be used to transform the color response ofone color imaging system, referred to as a source color imaging system,to match the color response of another color imaging system, referred toas a destination color imaging system. The color mapping techniqueprojects color coordinates in the color space used by the source colorimaging system into, for example, a device-independent color space.Optimal color coordinates in the color space used by the destinationcolor imaging system are determined to realize a relatively close match.As further explained below in connection with the example embodiments,color mapping technique then generates a color map based on the optimalcolor coordinates for a number of color coordinates in the color spaceused by the source color imaging system.

FIG. 1 illustrates an example system 100 according to the presentinvention configured to transform colors between imaging systems. Thesystem 100 includes an appropriately-programmed computer arrangement102. The computer arrangement 102 may be implemented using any of avariety of conventional resources, for example, a personal computer andCD-ROM based software. Other computer-based designs may be used as well.For example, the computer arrangement 102 may be implemented using amicroprocessor that acts with a read-only memory (ROM) into which asoftware application program is loaded. The software application programmay be incorporated, for example, in a color-management softwarepackage.

A color mapping system 104 includes a color management system 106. Thecolor management system 106 receivers a source device profile 108 and adestination device profile 110. These device profiles describe mappingsfrom device-dependent color coordinate systems used by respective colorimaging systems to device-independent color coordinate systems.

The color management system 106 processes the source device profile 108and the destination device profile 110 to generate a color map 114. Thecolor map 114 describes a relationship between the source anddestination devices. A memory 116 stores the color map 114.Subsequently, the color management system 106 uses the color map 114 totransform a set of source coordinates 118 in a device-dependent sourcedevice color space into a set of destination coordinates 120 in adevice-dependent destination device color space.

FIG. 2 illustrates an example color management system 200 fortransforming colors between imaging systems according to the presentinvention. A source device profile interpreter 202 receives a sourcedevice profile 206. The source device profile 206 is used to mapcoordinates in the source device color space to a some form of colordata, such as spectral or XYZ tristimulus values. For example, if thesource device is a halftone color printer, the source device profile 206may map CMYK color values to a XYZ color space. The source deviceprofile interpreter 202 interprets the source device profile 206 andconverts coordinates in the source device color space to adevice-independent color space known as a profile connecting space(PCS). The PCS is used for converting the coordinates in the sourcedevice color space to the destination device color space or anothercolor appearance model. The PCS may be, for example, the CIELAB colorspace. Another example PCS is described in copending U.S. patentapplication, entitled “Characterization of Color Imaging Systems”(Christopher Edge et al), assigned to the instant assignee, filed onJun. 27, 1997, and incorporated herein by reference.

A destination device profile interpreter 208 receives a destinationdevice profile 210. The destination device profile 210 is used to mapcolor coordinates in a destination device color space used by adestination device 212 to some form of color data, such as spectral orXYZ tristimulus values. For example, if the destination device 212 is acathode ray tube (CRT) monitor, the destination device profile 210 maymap color coordinates in a red-green-blue (RGB) color space to XYZtristimulus values. The destination device profile interpreter 208interprets the destination device profile 210 and converts colorcoordinates in the destination device color space to the FCS.

The source and destination device profile interpreters 202 and 208 maybe implemented using any of a variety of hardware and softwarearrangements and are configurable for a variety of applicationenvironments. For example, if the source and destination device profiles206 and 210 are International Color Consortium (ICC) device profiles,the source and destination device profile interpreters 202 and 208 areoptionally configured to include white- and black-point parameters toaccount for color variations between media and colorants used bydifferent color display devices. The source and destination deviceprofile interpreters 202 and 208 can also be configured to includepleasing color corrections, such as L* resealing and a*b* hueadjustments. Alternatively, the pleasing color corrections can beincorporated into the color transformer 214. In certain otherapplication environments, the source and destination device profileinterpreters 202 and 208 are further configurable to include, forexample, illuminant and observer functions.

The device profile interpreters 202 and 208 can be configured using anyof a variety of approaches. For example, plug-in software modules can beused to configure the device profile interpreters 202 and 208. Usingplug-in software modules obviates the need to use new versions of thecolor management system 200 or of the device profiles 206 and 210 whenadding, for example, a newly defined color space, a custom illuminant,such as fluorescent light, or a new gamut mapping technique. Theseoptions can be selected, e.g., using a setup window at the operatingsystem level. For example, if the operating system is Apple OS version75, these options can be selected using a control parcel interface.

If the device characterization is non-spectral, the color managementsystem 200 can use the original spectral data that is saved with theprofile to reconstruct the device profiles according to variousconditions, such as illuminant functions and color apace choices. Forexample, if one uses an RGH regression to convert scanner RGB valuesinto color space values for a particular combination of color space andilluminant and observer conditions based on a net of spectral data, theregression for a new set of conditions can be generated based on thesame spectral data. Accordingly, the device profiles 206 and 210 can beused to calculate color values for a variety of conditions and profileconnecting spaces (PCS).

A color transformer 214 obtains PCS color coordinates from the sourceand destination device profile interpreters 202 and 208. The colortransformer 214 uses these color coordinates to develop a color map 216that expresses a relationship between the color spaces used by thesource and destination devices 204 and 212. To generate the color map216, the color transformer 214 may use any of a variety of gamut mappingtechniques. One such technique that has been found to yield particularlyaccurate results involves reducing the color error between the sourceand destination devices. The color error is defined, for example, byEuclidean distance in the PCS or by the weighted sum of squared errorsin a color space that is polar in the chromatic dimensions of the PCS.Defining the color error using a weighted sum of squared errors resultsin a mapping between color imaging systems that accurately maintainscolors in reproduced images. By using error reduction techniques withforward profiles, the color transformer 214 avoids generatingsignificant cumulative error in performing multiple forward and reversetransformations between color spaces.

The color transformer 214 is implemented using, for example, a softwareprogram, and can be configured for a variety of applications. Forexample, the color transformer 214 can be configured to perform a 100%black point scaling for mapping a printed color image to a monitordisplay of the image. On the other hand, because newsprint has arelatively weak black point attributable to its ink density andlight-transmitting properties, the color transformer 214 can beconfigured to perform, for example, a 50% black point scaling whenmapping a color image printed on newsprint to the Matchprint™ colorimaging system. The color transformer 214 is also configurable to use,for example, illuminant and observer functions, which the colortransformer 214 provides to the source and destination device profileinterpreters 202 and 208. The color management system 200 receives userpreferences from input 218 to determine how to configure the colortransformer 214.

After developing the color map 216, the color transformer 214 can beused to transform colors between the source and destination devices 204and 212. The color transformer 214 receives color coordinates in thesource device color space and transforms them using the color map 216.This transformation produces a set of color coordinates in thedestination device color space. The destination color imaging systemthen produces the color on the destination device 212 using these colorcoordinates.

FIG. 3 illustrates an example device profile interpreter 300implementing part of the color management system 200 of FIG. 2. Thedevice profit interpreter 300 uses a device profile 302 to convertdevice coordinates received at an input 304 to PCS color coordinates,which the device profile interpreter 300 provides at an output 306. Thedevice profile 302 describes the relationship between the devicecoordinates and some form of color data. Additionally, the deviceprofile 302 optionally stores the raw spectral data used to constructthe device profile. The raw spectral data allows the system tosubsequently construct more accurate device profiles 302 and permitsforward compatibility for changes in anticipation of change in ICCspecifications. This updating can be performed by the systemautomatically.

The system can also detect that some component of the device profile 302is out of date for recalibration. Updates can also be performedperiodically based on a schedule. To update the device profile 302, anew profile can be generated using a recalibration procedure, forexample, as described in U.S. patent application Ser. No. 08/431,614,entitled “Apparatus and Method for Recalibrating a Multi-Color ImagingSystem,”associated to the instant assignee and incorporated herein byreference.

A device profile processor 308 receives the device coordinates from theinput 306 and the device profile 302. The device profile 302 may be, forexample, an ICC profile. If the device profile 302 exists in thisformat, the device profile processor receives the forward portion of theprofile, i.e., the portion used for converting device coordinates to PCScolor coordinates. Alternatively, the device profile 302 can be storedin another format. The device profile processor 309 processes the devicecoordinates using the device profile 302 and outputs certain data basedon the device profile 302. For example, if the device profile 302 is anICC profile, the device profile processor 308 outputs XYZ tristimulusvalues for a particular set of observer conditions (e.g., illuminant andobserver functions). If the device profile 302 is based on spectraldata, the device profile processor 308 outputs spectral data. The deviceprofile processor 308 can be configured for a variety of applications.For example, a user can select between absolute and relativecolormetrics and can configure viewing conditions, such as observer orilluminant functions.

A PCS processor 310 receives the data output from the device profileprocessor 308 and a set of PCS parameters from an input 312. The PCSparameters may include, for example, XYZ tristimulus values for themedia white, the illuminant white, and the black point, as well asblack-point scaling from an absolute black to the media black. The PCSprocessor 310 generates the PCS values as a function of the datareceived from the device profile processor 308 and the PCS parameters.

FIG. 4 illustrates an example color transformer 400 implementing part ofthe color management system 200 of FIG. 2. A device link generator 402receives as input at least one source profile and one destinationprofile. While FIG. 4 illustrates the device link generator 402receiving a source device profile from a source profile interpreter 404and a destination device profile from a destination profile interpreter406, it should be understood that the device link generator 402 may alsoreceive one or more device profiles that are intermediate between thesource and destination device profiles. For example, a device profilecharacterizing an RGB monitor can be intermediate between a sourcedevice profile characterizing an RGB scanner and a destination deviceprofile characterizing a CMYK printer. The source and destination deviceprofiles are forward transforms and optionally include configurableviewing conditions and PCS parameters. The device link generator 402also receives a series of PCS parameters 409 to improve linking ofdifferent device types (e.g., CRT monitors and printers). The gamutmapping parameters 410 improve mapping of out of gamut colors betweendevice types.

The device link generator 402 generates a color map or device profilelink 412 that maps colors between two devices, e.g., from an RGB deviceto a CMYK device or between two CMYK devices. The device profile link412 includes, for example, a mathematical expression or a look-up table.The color transformer 400 optionally atones the device profile link 412in a memory, such as a random access memory (RAM), or saves it as a filefor multiple transformations between the source and destination devicecolor spaces.

A device link calculator 414 receives source device coordinates from aninput 416 and processes them using the device profile link 412. Thedevice link calculator 414 uses a noniterative forward calculation totransform the source device coordinates to a set of destination devicecoordinates for presentation at an output 419. Because the device linkcalculator 414 uses a noniterative forward calculation, thetransformation process is relatively fast. If the device profile link412 is a look-up table, the device link calculator 414 optionally useslinear interpolation to refine the destination device coordinates. Thedevice link calculator 414 can be implemented, e.g., using aconventional multidimensional linear interpolator.

FIG. 5 illustrates an example device link generator 500 that implementspart of the color transformer 400 of FIG. 4. The device link generator500 includes a device link table builder 502 that creates a look-uptable to enable rapid interpolation of destination device coordinatesfrom source device coordinates. It should be understood that if thedevice profile link is a mathematical expression rather than a look-uptable, an analogous transformation generator replaces the device linktable builder 502. Such a transformation builder may, for example,generate coefficients for use in the mathematical expression. Tofacilitate the discussion, however, the device fink generator 500 isassumed to include a device link table builder 502. The device linktable builder 502 generates the look-up table by generating a series ofsource device coordinates as input value entries and determining theoptimal destination, device coordinates as output values correspondingto the input values. The device link table builder 502 generates asubset of source device coordinates using, for example, a series ofnested loops, one loop for each dimension of the source device colorcoordinate space.

To reduce the computational and memory requirements for constructing andstoring the look-up table, the look-up table typically contains arelatively small number of entries along each dimension. With arelatively small table, interpolation is used to convert sourcecoordinates to destination coordinates. The total number of entries inthe look-up table can be expressed as D_(d)N_(s) ^(d), where d is thedimensionality of the source device color space, D_(d) is thedimensionality of the destination device color space, and N, is thenumber of entries along cacti dimension of the look-up table. Forexample, a look-up table that is used to transform color coordinatesbetween two CMYK (i.e., four-dimensional) color spaces, with 17 samplesalong each dimension, contains 4×17⁴, or 334,084 entries.

It should be understood that the look-up table need not have the samenumber of entries along each dimension. If the look-up to table containsN_(k) entries along each respective dimension, where k ranges from 1 tod, the total number of entries in the lookup table can be expressed as$D_{D} = {\prod\limits_{k = 1}^{d}\quad{N_{k}.}}$For example, a look-up table that is used to transform color coordinatesbetween two CMYK color spaces and that is to have fifteen entries alongthree dimensions and seventeen entries, along one dimension contains4×15×15×15×17, or 229,500 entries.

In application environments in which it is desirable to further reducecomputational and memory requirements, the device link table builder 502may select only a subset of the total number of entries in eachdimension of the look-up table, perform the method loop calculationsusing that subset, and perform, for example, a spline interpolation tofill in the remaining entries of the look-up table.

The device link table builder 302 provides PCS parameters and somedevice coordinates to a source device profile interpreter 504. Thesource device profile interpreter 504 generates source PCS values andprovides the source PCS values, and the source device coordinates to anerror reducer 506. In a specific embodiment, the error reducer 506 isimplemented using an error minimization technique. Using the sourcedevice coordinates, the error reducer 506 estimates an initial set ofdestination coordinates that are likely to realize an accurate colormatch with the source device coordinates. This estimation process may beperformed using a relatively simple technique. For example, forestimating destination coordinates in an RGB space corresponding tosource coordinates in a CMYK color space, the estimation process may usethe following equations:C=1−RM=1−GY=1−BAlternatively, the source coordinates can be used as estimates of thedestination coordinates if the source and destination imaging systemsuse similar color coordinate spaces.

The error reducer 506 provides the set of estimated destination devicecoordinates to a destination device profile interpreter 508, which alsoreceives the PCS parameters from the device link table builder 502. Thedestination device profile interpreter 508 then generates a set ofdestination PCS values as a function of the estimated destination devicecoordinates and the PCS parameters and provides the destination PCSvalues to the error reducer 306. If the error between the destinationPCS values and the source PCS values is non-zero, the error reducer 506uses an error reduction (e.g., an error minimization) technique toreduce the error between the source and destination PCS values. In oneembodiment, this is implemented by repeatedly querying the destinationdevice profile interpreter 508 with selected estimates of destinationdevice coordinates. This process can continue until destination devicecoordinates are found that satisfy a quality threshold, for example,that yield the minimum error. The error reducer 506 returns thesedestination device coordinates to the device link table builder 502,which enters them in an appropriate location in the look-up table. Thedevice link table builder 502 then enters the next set of table inputentries corresponding to a set of source device color coordinates.

For colors within the gamut of the destination device, the error can bereduced using any of a variety of reduction techniques. For example,Powell's method can be used to perform the error reduction or errorminimization. For additional information regarding Powell's method,reference may be made to William H. Press et al., Numerical Recipes in C(1992), pp. 309-315, available from Cambridge University Press,incorporated herein by reference and attached hereto as Appendix A.

Using this approach, the error reducer 506 generally defines an errorfunction having input parameters that can be varied by the errorinduction technique. The error reducer 506 then determines the optimalvalues of the input parameters resulting in a minimal error. Todetermine the values of destination device coordinates producing theminimum PCS error between the source and destination PCS values, thevariable input parameters are the destination device coordinates.Accordingly, in this specific implementation, the error reducer 506defines the error function as:Error (D)=ΔE (R_(s),R_(d)(D))where D is a vector defined by the destination device coordinates, R_(s)is a vector defined by the source PCS values and R_(d)(D) is a vectorfunction producing destination PCS values as a function of thedestination coordinate vector D, and ΔE is the Euclidean distancebetween R_(s) and R_(d)(D). The Euclidean distance may be expressedusing the following equation:${\Delta\quad{E\left( {R_{1},R_{2}} \right)}} = \sqrt{\left( {L_{1} - L_{2}} \right)^{2} + \left( {a_{1} - a_{2}} \right)^{2} + \left( {b_{1} - b_{2}} \right)^{2}}$

The above equation assumes that the PCS is implemented as the CIELABcolor space. It should be understood, however, that other color spacesmay be used as a PCS. For example, one color space that is particularlysuited for use as a PCS is described in the previously-referencedcopending U.S. patent application, entitled “Characterization of ColorImaging Systems.”

Using this same approach, a non-zero minimum error indicates that thesource device is out of gamut relative to the destination device at thatlocation in the PCS. In such situations, the error reducer 506optionally uses the destination device coordinates that result in aminimum ΔE value. Alternatively, the error reducer 506 may use thesevalues as an initial estimate and recalculate the optimal destinationdevice coordinates using a new error function that employs weightingfactors, polar coordinates in the chromatic plane of the PCS space, orboth.

The error reducer 506 optionally uses a gamut mapping parameter receivedfrom the device link table builder 502 to decide how to map coordinatesthat are out of gamut relative do the source device. For example, thegamut mapping parameter may specify modes in which each technique isused for obtaining destination device coordinates. One mode, forexample, may use lightness, chroma, and hue values L*, C*, and h*instead of LAB values L*, a*, and b*, where:${C^{*} = \sqrt{\left( a^{{*2} + {b*}} \right)}},{{{and}\quad A^{*}} = {C^{*}{{{ARCTAN}\left( {b^{*}/a^{*}} \right)}.}}}$andh*=C *·ARCTAN(b*/a*).Another mode uses the strove lightness, chroma, and hue values as wellas weighting factors:Error (D)=ΔEW (R_(s), R_(d)(D), W)${\Delta\quad{{EW}\left( {R_{1},R_{2},W} \right)}} = \sqrt{{W_{L}\left( {L_{1} - L_{2}} \right)}^{2} + {W_{C}\left( {C_{1} - C_{2}} \right)}^{2} + {W_{2}\left( {b_{1} - b_{2}} \right)}^{2}}$where the PCS vectors R_(s), R_(d),(D) are converted to lightness,chroma, and hue values either before or after passing them to the errorfunction.

If each of the weighting factors is equal to one, the above-weightederror reduction function ΔEW( ) is identical to the standard ΔE( ) errorreduction function. It should be noted, however, that weighting factorsof W_(L)=3, W_(C)=1, and W_(h)=1.5 yield particularly accurate visualresults. These weighting factors produce an error function that givespriority first to lightness, then to hue, then to chroma. Theseweighting factors can also be provided to the error reducer 506 as gamutmapping parameters by the device link table builder 502.

Creating the device profile link via error reduction of the forwardtransformations of the devices realizes a number of advantages. Forexample, errors in color conversion are limited to those attributable toquantization and interpolation. As a result, the cumulative error fromrepeated forward and reverse transformations between the source anddestination device color spaces is substantially reduced. Additionally,the color transformer can select the gamut mapping tech toque. The colortransformer can rely on the forward transform information and realizeconsistent gamut mapping between device profiles supplied by differentvendors. It should be noted that errors due to interpolation of thedevice profile link decreases as the number of table entries in eachdimension of the look-up table increases toward the maximum number ofgray levels. This error also decreases if a one-dimensional tonereproduction table is used to transform the color values. For additionalinformation regarding the use of a one-dimensional tone reproductiontable, reference is made to U.S. Pat. No. 5,432,906, issued to Gary H.Newman, assigned to Eastman Kodak Company, and incorporated byreference.

Creating the device profile link using error reduction also allowstransformation between CMYK device spaces that maps the tone response ofthe source and destination black (K) channels, while maintaining anaccurate match with the L*a*b* data. For transformation from an RGBsource device to a CMYK destination device, the RGB color coordinatesused by the source device lack K channel information. Some conventionalcolor transformation techniques use a process known as gray componentreplacement (GCR) to define a relationship between K values and CMYvalues, in the reverse transformation (i.e., L*a*b* to CMYK). Forexample, the reverse transformation may be performed with K initiallyset to zero. The value of K can then be calculated based on the minimumof the C, M, and Y values. The CMY values can then be recalculated usingan algebraic calculation or using the forward model to obtain theclosest value of L*a*b* input using the new calculated K value. Thisprocess involves a reverse transformation from L*a*b* color values toCMYK color values with a fixed definition of GCR.

This process, however, loses the K channel information or the CMYchannel information during the translation between CMYK color spacesbecause the source color values are transformed to a three-dimensionalintermediary color space during conversion to destination CMYK values.To preserve the K channel information, the error reducer 506 determinesoptimal K values in the destination color space that correspond to the Kvalues in the source device color space, e.g., values between 0 and 255.These values can be created, for example, by generating a series ofsource K values ranging from minimum to maximum, fixing the source anddestination CMY values at 0, and finding destination K values withminimum ΔE error relative to each of the source K values. These sourceand destination K values can be loaded into a lookup table for quickconversion of source K to destination K values. By using error reductionto determine optimal K values in the destination color space, the devicelink generator 500 preserves K channel information. This results inimproved accuracy of the K channel information when converting colorsbetween CMYK devices.

After loading the source and destination K values into a lookup table,when the error reducer 306 receives source L*a*b* and CMYK values, theerror reducer 506 initially maps the source K channel to the destinationK channel. The error reduction procedure is then used for varying thedestination CMY values to obtain the best match for the respectiveL*a*b* values. If ΔE=0 control returns to the device link table builder502, which enters the calculated destination CMYK values into the devicelink table. If ΔE is greater than zero, then the destination CMY valuescorresponding to the destination K value in question are out of gamutrelative to the target L*a*b* values. This may be, for example, becausethe source CMY values corresponding to K=0 result in a color that is outof gamut with the destination device, or because the destination K valuein the particular region of destination CMY color space is either toohigh or too low, ie., the mixture of K with CMY is such that theresulting color is too dark or too light relative to the targeted L*a*b*value.

To reduce the ΔE occur, K can be varied in a controlled way so as toensure both optimal L*a*b* color and optimal matching of the K sourcechannel behavior. This can be performed, for example, by alternatelyfixing the current CMY values while performing error reduction onvariable K values and fixing the K value while performing errorreduction on variable CMY values. When it is determined that neithervarying CMY nor varying K improves the ΔE error, it can be assumed thattime optimal CMYK values have been determined to satisfy both the colormatching and K channel accuracy criteria. Control then optionallyreturns to the device link table builder 502. While the above discussionassumes that the error reducer 506 performs the mapping between sourceand destination K values, it should be understood that the device linktable builder 502 can perform the mapping.

It should be understood that other approaches can be used to improve theaccuracy of the K channel information. For example, the PCS can beimplemented as a color space having the same number of dimensions, e.g.,four, as CMYK space. Using a PCS having the same dimensionality as thedevice space prevents the loss of color channel information. In aspecific example embodiment, the first three channels of this PCS arethe PCS currently used by the system (e.g., L*a*b*, or XYZ). The fourthchannel indicates a PCS value indicative of the black channel orrelating to the black channel l (e.g., L* or tristimulus value Y). Theprocess can be performed in a manner similar to that performed by theICC specification as in, for example, ColorSync 2.1 available from AppleComputer.

FIG. 6 illustrates an example color transformation method 600 accordingto the present invention. At a block 602, selected source device colorcoordinates are mapped to a PCS. Destination device color coordinatesare then estimated as a function of the source device color coordinates,as depicted as a block 604. These estimated destination device colorcoordinates are then mapped to the PCS at a block 606.

At a block 608, an error between the PCS values corresponding to thesource and destination device color coordinates is determined. At adecision block 610, the method determines whether the error satisfies aquality criterion, such as error minimization. In certain applications,the quality criterion can be defined as reduction of the error below athreshold value. If the error does not satisfy the quality criterion,flow proceeds to a block 612, at which the estimated destination devicecolor coordinates are adjusted to reduce the error. This process repeatsuntil the error is reduced.

After the error is reduced, flow proceeds to a block 614, at which theoptimal destination device color coordinates thus obtained are enteredinto a color map. Next, the method determines whether the color map isfilled, as depicted at a decision block 616. If the color map containsempty entries, flow proceeds to a block 618. New source device colorcoordinates are then selected, and then flow returns to the block 602.This process continues until the color map is filled. The color map canthen be stored as, for example, a data file for future reference. Theuser can specify the desired source, destination, and intermediateprofiles and the user preferences used to generate the device profilelink. Upon recognizing that a color map has already been developed for aparticular combination of these profiles, the system can load the datafile. Loading the data file instead of reconstructing the color mapsaves computation time and other resources.

The device profile link can be generated each time the user requests anew combination of device profiles. Alternatively, the user can specifyin advance a series of source, intermediate, and destination profilesand allow the system to preprocess these lists of profiles into theirrespective device profile links and store them. When the user requeststhat a particular transform be performed on image data using apreviously defined combination of source, intermediate, and destinationprofiles, the system retrieves the associated device profile link.Retrieving the device profile link improves the processing speed.

While the above discussion has assumed that the device profile linkdescribes a conversion between two device profiles, it should beunderstood that the device profile link can be used to describe aconversion between any number of device profiles. For example, N deviceprofiles can be concatenated using a single device profile link Toconcatenate the device profiles, the color conversion is performed usingthe PCS to convert colors between each device profile to beconcatenated. Performing error reduction on the forward transformsbetween the individual device profiles improves the accuracy of theconcatenated device profile link between the first and nth deviceprofiles.

The various embodiments described above arc provided by way ofillustration only and should not be construed to limit the invention.Those skilled in the art will readily recognize various modificationsand changes that may be made to the present invention without strictlyfollowing the example embodiments and applications illustrated anddescribed herein, and without departing from the true spirit and scopeof the present invention, which is set forth in the following claims.

1. For use in transforming color between color imaging systems, a colormapping method comprising: providing forward transformation profilesthat characterize the color imaging systems; using the forwardtransformation profiles to generate respective sets ofdevice-independent color values for the color imaging systems;determining color conversions by iteratively reducing differencesbetween the sets of device-independent color values, includingperforming a first reduction in differences between thedevice-independent color values for all color channels, wherein the fastreduction is multidimensional, and performing a second reduction indifferences between the device-independent color values for the blackchannel in addition to the first reduction; and constructing a color mapdescribing a relationship between the color imaging systems using thecolor conversions, wherein the forward transformation profiles storespectral data, the method further comprising using the spectral data forreconstructing the profiles automatically.
 2. For use in transformingcolor between color imaging systems, a color mapping method comprising:providing forward transformation profiles that characterize the colorimaging systems; using the forward transformation profiles to generaterespective sets of device-independent color values for the color imagingsystems; determining color conversions by iteratively, reducingdifferences between the sets of device-independent color values,including performing a first reduction in differences between thedevice-independent color values for all color channels, wherein thefirst reduction is multidimensional, and performing a second reductionin differences between the device-independent color values for the blackchannel in addition to the first reduction; and constructing a color mapdescribing a relationship between the color imaging systems using thecolor conversions, wherein the forward transformation profiles storespectral data, the method further comprising using the spectral data toallow for forward compatibility of the profiles in anticipation ofchange in standards specifications.
 3. For use in transforming colorbetween color imaging systems, a method according to claim 2, whereinthe step of using the spectral data, includes reconstructing theprofiles automatically.
 4. For use in transforming color between colorimaging systems, a color mapping method comprising: providing forwardtransformation profiles that characterize the color imaging systems;using the forward transformation profiles to generate respective sets ofdevice-independent independent color values for the color imagingsystems; determining color conversions by iteratively reducingdifferences between the sets of device-independent color values,including performing a first reduction in differences between thedevice-independent color values for all color channels, wherein thefirst reduction is multi-dimensional, and performing a second reductionin differences between the device-independent color values for the blackchannel in addition to the first reduction; and constructing a color mapdescribing a relationship between the color imaging systems using thecolor conversions, wherein the forward transformation profiles storespectral data, the method further comprising using updated spectral datato allow for subsequently constructed profiles.
 5. For use intransforming color between color imaging stems, a method according toclaim 4, wherein using the updated spectral data includes reconstructingthe profiles automatically.
 6. For use in transforming color betweencolor imaging systems, a method according to claim 5, wherein usingspectral data includes reconstructing the profiles periodically.
 7. Foruse in transforming color between color imaging systems, a methodaccording to claim 5, wherein reconstructing the profiles periodicallyis a function of a schedule.
 8. For use in transforming color betweencolor imaging systems, a color mapping method comprising: providingforward transformation profiles that characterize the color imagingsystems; using the forward transformation profiles to generaterespective sets of device-independent color values for the color imagingsystems; determining color conversions by iteratively reducingdifferences between the sets of device-independent color values,including performing a first reduction in differences between thedevice-independent color values for all color channels, wherein thefirst reduction is multi-dimensional, and performing a second reductionin differences between the device-independent color values for the blackchannel in addition to the first reduction; constructing a color mapdescribing a relationship between the color imaging systems using thecolor conversions; and setting the device-independent color values forthe non-black color channels to zero during the second differencereduction.
 9. The method of claim 8, wherein the color channels includecyan, magenta, yellow, and black.
 10. The method of claim 8, wherein thedevice-independent color values include L*a*b* color values.
 11. Amethod comprising: obtaining sets of device-independent color values forsource and destination imaging devices; reducing differences between thedevice-independent color values for all color channels, wherein thereduction of differences for all color channels is a multi-dimensionalreduction; reduction differences between the device-independent colorvalues for the black channel; generating a color main between the sourceand destination color imaging devices based on both the differencereduction for the black channel and the difference reduction for allcolor channels; and setting the non-black color channels to zero duringthe reduction of differences for the black channel.
 12. The method ofclaim 11, further comprising keeping the black channel substantiallyfind during the reduction of differences for all color channels.
 13. Themethod of claim 11, wherein the color channels include cyan, magenta,yellow and black.
 14. The method of claim 11, wherein the color channelsinclude cyan, magenta, yellow, and black, and each of the differencereductions includes a multi-dimensional reduction of differences betweenthe device-independent values for the cyan, magenta, yellow and blackchannels.
 15. The method of claim 11, wherein the multi-dimensionalreduction is configured such that each of the destination color channelsvaries with at least two source color channels.
 16. A method comprising:obtaining sets of device-independent color values for source anddestination imaging devices; reducing differences between thedevice-independent color values for all color channels, wherein thereduction of differences for all color channels is a multi-dimensionalreduction; reducing differences between the device-independent colorvalues for the black channel; generating a color map between the sourceand destination color imaging devices based on both the differencereduction for the black channel and the difference reduction for allcolor channels, wherein the color channels include cyan, magenta,yellow, and black, and each of the difference reductions includes amulti-dimensional reduction of differences between thedevice-independent values for the cyan, magenta, yellow, and blackchannels, and wherein: reducing the differences for the black channelincludes reducing the differences for the cyan, magenta, yellow, andblack channels while keeping the cyan, magenta, and yellow values set tozero, and reducing the differences for all color channels includesreducing the differences for the cyan, magenta, yellow, and blackchannels while keeping the black channel fixed at the levels determinedfrom the reduction of differences for the black channel.
 17. The methodof claim 11, wherein the device-independent color values include L*a*b*color values.
 18. A data storage medium containing a computer-executableprogram that, when executed: obtains sets of device-independent colorvalues for source and destination imaging devices; reduces thedifferences between the device-independent color values for all colorchannels, wherein the reduction of differences for all color channels isa multi-dimensional reduction; reduces differences between thedevice-independent color values for the black channel; generates a colormap between the source and destination color imaging devices based onboth the difference reduction for the black channel and the differencereduction for all channels; wherein the non-black color channels are setto zero during the reduction of differences for the black channel. 19.The data storage medium of claim 18, wherein the black channel issubstantially fixed during the reduction of differences for all colorchannels.
 20. The data storage medium of claim 18, wherein the colorchannels include cyan, magenta, yellow, and black.
 21. The data storagemedium of claim 18, wherein the color channels include cyan, magenta,yellow, and black, and each of the difference reductions includes amulti-dimensional reduction of differences between thedevice-independent values for the cyan, magenta, yellow, and blackchannels.
 22. The data storage medium of claim 18, wherein themulti-dimensional reduction is configured such that each of thedestination color channels varies with at least two source colorchannels.
 23. The data storage medium of claim 18, wherein thedevice-independent color values include L*a*b* color values.
 24. A datastorage medium containing a computer-executable program that, whenexecuted: obtains sets of device-independent color values for source anddestination imaging devices; reduces differences between thedevice-independent color values for all color channels, wherein thereduction of differences for all color channels is multi-dimensionalreduction; reduces differences between the device-independent colorvalues for the black channel; generates a color map between the sourceand destination color imaging devices based on both the differencereduction for the black channel and the difference reduction for allcolor channels, wherein the color channels include cyan, magenta,yellow, and black, and each of the difference reductions includes amulti-dimensional reduction of differences between thedevice-independent values for the cyan, magenta, yellow, and blackchannels, and wherein: reducing the differences for the black channelincludes reducing the differences for the cyan, magenta, yellow, andblack channels while keeping the cyan, magenta, and yellow values set tozero, and reduction the difference for all color channels includesreducing the differences for the cyan, magenta, yellow, and blackchannels while keeping the black channel fixed at the levels determinedfrom the reduction of differences for the black channel.
 25. A method ofmapping of CMYK values between source and destination devices, themethod comprising: (a) generating L*a*b* values for source anddestination CMYK values; (b) iteratively reducing differences betweenthe L*a*b* values by adjusting the destination K values end setting thedestination CMY values to zero; (c) iteratively reducing differencesbetween the L*a*b* values by adjusting the destination CMY values andkeeping the K values substantially fixed at the levels determined instep (b); and (d) generating a color map based on both of the iterativedifference reductions of steps (b) and (c).
 26. The method of claim 25,further comprising, in the event the differences between the L*a*b*values are not initially reduced to an acceptable degree, iterativelyreducing differences between the L*a*b* values by adjusting thedestination K values and keeping the destination CMY values determinedin step (c) fixed.
 27. The method of claim 25, further comprising, inthe event the differences between the L*a*b* values are not initiallyreduced to an acceptable degree: (e) iteratively reducing differencesbetween the L*a*b* values by adjusting the destination K values andkeeping the destination CMY values determined in step (c) fixed; (f)iteratively reducing differences between the L*a*b* values by adjustingthe destination CMY values and keeping the destination K valuesdetermined in step (c) fixed; and (g) repeating steps (e) and (f) on analternating basis until differences between the L*a*b* values arereduced to the acceptable degree.
 28. A data storage medium containing acomputer-executable program that, when executed: (a) generates L*a*b*values for source and destinations CMYK values; (b) iteratively reducesdifferences between the L*a*b* values by adjusting the destination Kvalues and setting the destination CMY values to zero; (c) iterativelyreduces differences between the L*a*b* values by adjusting thedestination CMY values and keeping the K values substantially fixed atthe levels determined instep (b); and (d) generates a color map based onboth of the iterative difference reductions of steps (b) and (c). 29.The data storage medium of claim 28, wherein, in the event thedifferences between the L*a*b* values are not initially reduced to anacceptable degree, the program iteratively reduces differences betweenthe L*a *b* values by adjusting the destination K values and keeping thedestination CMY values determined in step (c) fixed.
 30. The datastorage medium of claim 28, wherein, in the event the differencesbetween the L*a*b* values are not initially reduced to an acceptabledegree, the program: (e) iteratively reduces differences between the L*a*b* values by adjusting the destination K values and keeping thedestination CMY values determined in step (c) fixed; (f) iterativelyreduces differences between the L*a*b* values by adjusting thedestination CMY values and keeping the destination K values determinedin step (e) fixed; and (g) repeats steps (e) and (f) on an alternatingbasis until differences between the L*a*b* values are reduced to theacceptable degree.
 31. A method for mapping of color values betweensource and destination devices, the method comprising: (a) generatingdevice-independent color values for source and destinationdevice-independent values; (b) iteratively reducing differences betweenthe device-independent color values by adjusting the destination blackchannel values and setting the destination non-black channel values tozero; (c) iteratively reducing differences between thedevice-independent color values by adjusting the destination non-blackchannel values and keeping the destination black channel valuessubstantially fixed at the levels determined in step (b); and (d)generating a color map based on both of the iterative differencereductions of steps (b) and (c).
 32. The method of claim 31, furthercomprising, in the event the differences between the device-independentcolor values are not initially reduced to an acceptable degree,iteratively reducing differences between the device-independent colorvalues by adjusting the destination black channel value and keeping thedestination non-black channel values determined in step (c) fixed. 33.The method of claim 31, further comprising, in the event the differencesbetween the device-independent color values are not initially reduced toan acceptable degree; (e) iteratively reducing differences between thedevice-independent color values by adjusting the destination blackchannel values and keeping the destination non-black channel valuesdetermined in step (e) fixed; (f) iteratively reducing differencesbetween the device-independent color values by adjusting the destinationnon-black channel values and keeping the destination black channelvalues determined in step (e) fixed; and (g) repeating steps (e) and (f)on an alternating basis until difference between the device-independentcolor values are reduced to the acceptable degree.
 34. A data storagemedium containing a computer-executable program that, when executed: (a)generate device-independent color values for source and destinationdevice-dependent color values; (b) iteratively reduces differencesbetween the device-independent color values by adjusting the destinationblack channel values and setting the destination non-black channelvalues to zero; (c) iteratively reduces differences between thedevice-independent color values by adjusting the destination non-blackchannel values and keeping the black channel values substantially fixedat the level determined in step (b); and (d) generates a color map basedon both of the iterative difference reductions of steps (b) and (c). 35.The data storage medium of claim 34, wherein, in the event thedifferences between the device-independent color values are notinitially reduced to an acceptable degree, the program iterativelyreduces differences between the device-independent color values byadjusting the destination black channel values and keeping thedestination non-black channel values determined in step (c) fixed. 36.The data storage medium of claim 34, wherein, in the event thedifferences between the device-independent color values are notinitially reduced to an acceptable degree, the program: (e) iterativelyreduces differences between the device-independent color values byadjusting the destination black channel values and keeping thedestination non-black channel values determined in step (e) fixed; (f)iteratively reduces differences between the device-independent colorvalues by adjusting the destination non-black channel values and keepingthe destination black channel values determined in step (e) fixed; and(g) repeats steps (e) anti (f) on an alternating basis until differencesbetween the device-independent color values are reduced to theacceptable degree.